4D Server v12Datenbankmethode On Server Open Connection |
||||||||||
|
4D Server v12
Datenbankmethode On Server Open Connection
|
Parameter | Beschreibung |
$1 | ID Nummer für Benutzer, die 4D Server intern zur Identifikation von Benutzern verwendet. |
$2 | ID Nummer für Verbindung, die 4D Server intern zur Identifikation einer Verbindung verwendet. |
$3 | Obsolet: Gibt immer 0 zurück, muss aber deklariert werden. |
Diese ID Nummern sind nicht direkt als Informationsquellen einsetzbar, z.B. um sie in einem 4D Befehl als Parameter zu übergeben. Sie ermöglichen jedoch, einen 4D Client Prozess zwischen der Datenbankmethode On Server Open Connection und der Datenbankmethode On Server Close Connection eindeutig zu identifizieren. Die Kombination dieser Werte ist zu jedem Moment einer Server Sitzung einmalig. Ist diese Information in einer Interprozess-Array bzw. Tabelle gespeichert, können beide Datenbankmethoden Informationen austauschen. Im Beispiel am Ende dieses Abschnitts verwenden die beiden Datenbankmethoden diese Information, um Datum und Uhrzeit für Beginn und Ende einer Verbindung zum gleichen Datensatz einer Tabelle zu speichern.
Dieses Beispiel zeigt, wie mit der Datenbankmethode On Server Open Connection und der Datenbankmethode On Server Close Connection in der Datenbank ein Logbuch der Verbindung verwaltet wird. Die Tabelle [Server Log] wird zum Auffinden der Verbindungsprozesse verwendet.
Die hier gespeicherte Information wird von der Datenbankmethode On Server Open Connection und der Datenbankmethode On Server Close Connection wie folgt verwaltet:
` Datenbankmethode On Server Open Connection
C_LONGINT($0;$1;$2;$3)
` Erstelle eine Datensatz [Logbuch]
CREATE RECORD([Server_Log])
[Server_Log]Log_Nr:=Sequence number([Server_Log])
` Sichere Anmeldedatum und Anmeldezeit
[Server_Log]Anmeldedatum:=Current date
[Server_Log]Anmeldezeit:=Current time
` Sichere die Verbindungsinformation
[Server_Log]Benutzer_Nr:=$1
[Server_Log]Verbindung_Nr:=$2
SAVE RECORD([Server_Log])
` Gibt keinen Fehler zurück, so dass die Verbindung weiterlaufen kann
$0:=0
` Datenbankmethode On Server Close Connection
C_LONGINT($1;$2;$3)
` Finde wieder Datensatz [Server_Log]
QUERY([Server_Log];[Server_Log]Benutzer_Nr=$1;*)
QUERY([Server_Log]; & ;[Server_Log]Verbindung_Nr=$2;*)
QUERY([Server_Log]; & ;[Server_Log]Prozess_Nr=0)
` Sichere Abmeldedatum und -zeit
[Server_Log]Abmeldedatum:=Current date
[Server_Log]Abmeldezeit:=Current time
` Sichere die Prozessinformation
[Server_Log]Prozess_Nr:=Current process
PROCESS PROPERTIES([Server_Log]Prozess_Nr;$vsProzName;$vlProzStatus;$vlProzZeit)
[Server_Log]Prozessname:=$vsProzName
SAVE RECORD([Server_Log])
Nachfolgend sehen Sie einige Einträge in [Server_Log] mit mehreren remote Anbindungen:
Im folgenden Beispiel kann zwischen 2 und 4 Uhr a.m. keine neue Verbindung hergestellt werden:
` Datenbankmethode On Server Open Connection
C_LONGINT($0;$1;$2;$3)
If((?02:00:00?<=Current time)&(Current time<?04:00:00?))
$0:=22000
Else
$0:=0
End if
Produkt: 4D Server
Thema: Datenbankmethoden
Datenbankmethode On Server Close Connection